// 导入router所需的方法
import { createRouter, createWebHistory, createWebHashHistory, createMemoryHistory } from 'vue-router'
// 导入路由页面的配置
//import routes from './routes'
/*
使用 Vue3 和 Vite 实现路由自动配置。
使用 vite-plugin-pages 插件来自动导入和配置路由，从而简化了路由的管理。
使用自动配置路由可以提高开发效率，并使代码更加简洁和易于维护。
*/

const routes = import.meta.glob('../pages/*.vue')

const pages = Object.keys(routes).map((path) => {
  const name = path.match(/\.\/(.*)\.vue$/)[1]
  let pagePath = `/${name.toLowerCase()}`.replace('pages/', '')
  return {
    path: pagePath,
    component: routes[path],
    name,
  }
})

const router = createRouter({
  history: createWebHistory(),
  //history: createWebHashHistory(),
  //history: createMemoryHistory(),
  routes: [
    {
      path: '/',
      name: 'index',
      title: '首页',
      redirect: '/home',
    },
    ...pages,
    {
      path: '/:pathMatch(.*)*',
      component: () => import('@/pages/NotFound.vue'),
    },
  ],
})

/*
// 路由参数配置
const router = createRouter({
    // 使用hash(createWebHashHistory)模式，(createWebHistory是HTML5历史模式，支持SEO)
    history: createWebHistory(),
    routes: routes,
})
*/

// 全局前置守卫，这里可以加入用户登录判断
router.beforeEach((to, from, next) => {
    // 继续前进 next()
    // 返回 false 以取消导航
    next()
})

// 全局后置钩子，这里可以加入改变页面标题等操作
router.afterEach((to, from) => {
    const _title = to.meta.title
    if (_title) {
        window.document.title = _title
    }
})

// 导出默认值
export default router
